home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 75
/
075.d81
/
hi source
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
7KB
|
467 lines
100 sys700
110 .opt oo
120 *= $ca00
130 ffd2 =$ffd2
140 getin =$ffe4
150 base =$a000
160 jmp start
170 lcount =*
180 .byte 0:eof =*:.byte 0,0
190 temp =*
200 .byte 0
210 col =*
220 .byte 3
230 fade =*
240 .byte 15,15,12,11,0
250 pretty =*
260 .byte 0,0
270 menu =*
280 .asc "[195][210][211][210] up/down [159]page [195][159] color [209][159] exit":.byte 0
290 prlen =*:.byte 0,0
300 prloc =*:.byte 0,0
310 page =*:.byte 0
320 curpage =*:.byte 0
330 border =*:.byte 0
340 backgr =*:.byte 0
350 start jsr $aefd
360 jsr $ad9e
370 jsr $b6a3
380 ldx $22
390 ldy $23
400 jsr $ffbd
410 loadfile lda #1
420 ldx #8
430 ldy #0
440 jsr $ffba
450 lda #0
460 ldx #<base
470 ldy #>base
480 jsr $ffd5
490 stx eof
500 sty eof+1
550 storzero stx 251
560 sty 252
570 ldy #0
580 tya
610 sta (251),y
631 lda 53280
632 sta border
633 lda 53281
634 sta backgr
635 ldy #0
636 sty 53280
637 sty 53281
640 jsr $aefd
650 jsr $ad9e
660 jsr $b6a3
670 ldx $22:stx prloc
680 ldy $23:sty prloc+1
690 ldx #23
700 sta prlen
710 lsr
720 sta prlen+1
730 lda #20
740 sec
750 sbc prlen+1
760 sta prlen+1
770 jsr figureit
771 lda 1
772 ora #1
773 sta 1
780 jsr videoin
790 lda #"[147]"
800 jsr $ffd2
810 lda #1
820 sta 646
830 lda #"[162]"
840 ldy #39
850 topline jsr $ffd2
860 dey
870 bpl topline
880 lda #3
890 sta 199
900 sta 646
910 lda #32
920 ldy #119
930 line2 jsr $ffd2
940 dey
950 bpl line2
960 lda #0
970 sta 199
980 lda #11
990 sta 646
1000 lda #"[184]"
1010 ldy #39
1020 line3 jsr $ffd2
1030 dey
1040 bpl line3
1050 lda #6
1060 sta 646
1070 lda #"[176]"
1080 jsr $ffd2
1090 ldy #37
1100 lda #"[192]"
1110 sigh jsr $ffd2
1120 dey
1130 bpl sigh
1140 lda #"[174]"
1150 jsr $ffd2
1160 ldx #15
1170 mainarea ldy #37
1180 lda #"[221]"
1190 jsr $ffd2
1200 lda #3
1210 sta 646
1220 lda #32
1230 ma1 jsr $ffd2
1240 dey
1250 bpl ma1
1260 lda #6
1270 sta 646
1280 lda #"[221]"
1290 jsr $ffd2
1300 dex
1310 bpl mainarea
1320 lda #"[173]"
1330 jsr $ffd2
1340 lda #"[192]"
1350 ldy #37
1360 ma3 jsr $ffd2
1370 dey
1380 bpl ma3
1390 lda #"[189]"
1400 jsr $ffd2
1410 ldy #25
1420 linelink lda 217,y
1430 ora #128
1440 sta 217,y
1450 dey
1460 bpl linelink
1470 stx 251
1480 sty 252
1490 ldy #3:ldx #23
1500 clc
1510 jsr $fff0
1520 ldy #0
1530 smenu lda menu,y
1540 beq spretty
1550 jsr $ffd2
1560 iny
1570 jmp smenu
1580 spretty ldx #3
1590 stx 199
1600 stx 646
1610 ldx #2
1620 ldy prlen+1
1630 clc:jsr $fff0
1640 lda prloc
1650 sta 251
1660 lda prloc+1
1670 sta 252
1680 ldy #0
1690 showpret lda (251),y
1700 jsr $ffd2
1710 iny
1720 cpy prlen
1730 bne showpret
1740 main lda #<base
1750 sta 251
1760 lda #>base
1770 sta 252
1780 showpage ldx #6
1790 ldy #1
1800 clc
1810 jsr $fff0
1820 lda #0
1830 sta 646
1840 ldy #0
1850 sty lcount
1860 sty 199
1870 getit lda 1
1880 and #254
1890 sta 1
1900 sei
1910 getdata lda (251),y
1920 beq interupt
1930 cmp #13
1940 bne print
1950 jsr carriage
1960 lda lcount
1970 cmp #16
1980 bne getdata
1990 interupt cli
2000 lda 1
2010 ora #1
2020 sta 1
2030 jsr fadein
2040 jsr prinpage
2050 scankey jsr getin
2060 cmp #0
2070 beq scankey
2080 cmp #""
2090 bne cup
2100 jsr flipup
2110 jsr fadeout
2120 jmp showpage
2130 cup cmp #"[145]"
2140 bne chcol
2150 jsr flipdown
2160 jsr fadeout
2170 jmp showpage
2180 chcol cmp #"c"
2190 bne chhome
2200 jsr color
2210 jmp scankey
2220 chhome cmp #""
2230 bne chshift
2240 jsr fadeout
2250 lda #1
2260 sta curpage:jsr flipdown
2270 jmp showpage
2280 chshift cmp #"[147]"
2290 bne chquit
2300 ldx page
2310 stx curpage
2320 jsr fadeout
2330 jsr flipup
2340 jmp showpage
2350 chquit cmp #"q"
2360 beq quit
2370 jmp scankey
2380 quit lda 1
2390 ora #1
2400 sta 1
2410 jsr videoout
2420 rts
2430 print jsr $ffd2
2440 jsr bump
2450 jmp getit
2460 carriage jsr $ffd2
2470 lda #""
2480 jsr bump
2490 jsr $ffd2
2500 inc lcount
2510 rts
2520 color inc col
2530 lda col
2540 and #15
2550 sta col:sta 646
2560 cmp #0
2570 beq color
2580 cwait lda 53265
2590 bpl cwait
2600 ldy #37
2610 lda col
2620 wcolor sta 1265+54272,y
2630 sta 1305+54272,y
2640 sta 1345+54272,y
2650 sta 1385+54272,y
2660 sta 1425+54272,y
2670 sta 1465+54272,y
2680 sta 1505+54272,y
2690 sta 1545+54272,y
2700 sta 1585+54272,y
2710 sta 1625+54272,y
2720 sta 1665+54272,y
2730 sta 1705+54272,y
2740 sta 1745+54272,y
2750 sta 1785+54272,y
2760 sta 1825+54272,y
2770 sta 1865+54272,y
2780 dey
2790 bpl wcolor
2800 rts
2810 bump inc 251
2820 beq bump2
2830 rts
2840 bump2 inc 252
2850 rts
2860 clear lda 53265
2870 bpl clear
2880 ldy #37
2890 lda #32
2900 wipe sta 1265,y
2910 sta 1305,y
2920 sta 1345,y
2930 sta 1385,y
2940 sta 1425,y
2950 sta 1465,y
2960 sta 1505,y
2970 sta 1545,y
2980 sta 1585,y
2990 sta 1625,y
3000 sta 1665,y
3010 sta 1705,y
3020 sta 1745,y
3030 sta 1785,y
3040 sta 1825,y
3050 sta 1865,y
3060 dey
3070 bpl wipe
3080 rts
3090 figureit lda 1
3091 and #254
3092 sta 1
3099 lda #<base
3100 sta 251:sta ptable
3110 lda #>base
3120 sta 252:sta ptable+1
3130 ldy #0
3140 ldx #0
3150 stx page
3160 apage lda (251),y
3170 bne ckrt
3180 rts
3190 ckrt cmp #13
3200 bne incpage
3210 jsr found
3220 incpage inc 251
3230 beq bpage
3240 jmp apage
3250 bpage inc 252
3260 jmp apage
3270 found inx
3280 cpx #15
3290 bne foundout
3300 ldx #0
3310 inc page
3320 inc 251
3330 bne cpage
3340 inc 252
3350 cpage lda page
3360 asl
3370 tax
3380 lda 251
3390 sta ptable,x
3400 lda 252
3410 inx
3420 sta ptable,x
3430 ldx #0
3440 foundout rts
3450 flipup lda curpage
3460 cmp page
3470 bne ghead
3480 jmp chpage
3490 ghead inc curpage
3500 chpage lda curpage
3510 asl
3520 tax
3530 lda ptable,x
3540 sta 251
3550 inx
3560 lda ptable,x
3570 sta 252
3580 rts
3590 flipdown lda curpage
3600 bne sokay
3610 jmp chpage
3620 sokay dec curpage
3630 jmp chpage
3640 fadeout lda col
3650 sta temp
3660 sei
3670 ldx #0
3680 floop lda fade,x
3690 sta col
3700 jsr cwait
3710 inx
3720 cpx #5
3730 bne floop
3740 fout jsr clear
3750 lda temp
3760 sta col
3770 cli:rts
3780 fadein lda col
3790 sta temp
3800 ldx #5
3810 sei
3820 filoop lda fade,x
3830 sta col
3840 jsr cwait
3850 dex
3860 bne filoop
3870 lda temp
3880 sta col
3890 jsr cwait
3900 cli:rts
3910 prinpage ldx #24
3920 ldy #17
3930 clc
3940 jsr $fff0
3950 lda #12
3960 sta 646
3970 ldx curpage
3980 inx
3990 lda #0
4000 sta 199
4010 clc
4020 jsr $bdcd
4030 lda #" "
4040 jsr $ffd2
4050 lda #"o"
4060 jsr $ffd2
4070 lda #"f"
4080 jsr $ffd2
4090 lda #" "
4100 jsr $ffd2
4110 lda #0
4120 ldx page
4130 inx
4140 jsr $bdcd
4150 lda #" "
4160 jsr $ffd2
4170 lda #"[145]"
4180 jmp $ffd2
4190 videoin lda #0
4200 sta 251
4210 sta 253
4220 lda #>1024
4230 sta 252
4240 lda #>$e000
4250 sta 254
4260 jsr copy
4270 lda #>$d800
4280 sta 252
4290 lda #>$e400
4300 sta 254
4310 jsr copy
4320 rts
4330 videoout lda #0
4340 sta 251
4350 sta 253
4360 lda #>$e000
4370 sta 252
4380 lda #>$0400
4390 sta 254
4400 jsr copy
4410 lda #>$e400
4420 sta 252
4430 lda #>$d800
4440 sta 254
4450 jsr copy
4460 lda border
4470 sta 53280
4480 lda backgr
4490 sta 53281
4500 rts
4510 copy ldx #3
4520 ldy #0
4530 sei
4540 lda 1
4550 and #253
4560 sta 1
4570 copya lda (251),y
4580 sta (253),y
4590 iny
4600 bne copya
4610 inc 252
4620 inc 254
4630 dex
4640 bpl copya
4650 lda 1
4660 ora #2
4670 sta 1
4680 cli
4690 rts
4700 ptable =*